package com.uzai.console.entity.es;

import com.uzai.common.utils.EsIndexName;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

/**
 * 微信通讯录
 * @Auther: jianghan
 * @Date: 2021/11/19 11:33
 * @Description:
 */
@Document(indexName = EsIndexName.UZAI_WX_CONTACTS, shards = 3, replicas = 2)
public class EsWxContacts {

    @ApiModelProperty("主键id：merId_deviceId_wxid")
    @Id
    @Field(type = FieldType.Keyword)
    private String id;

    @ApiModelProperty("运营商id")
    @Field(type = FieldType.Long)
    private Long merId;

    @ApiModelProperty("机器人微信id")
    @Field(type = FieldType.Keyword)
    private String deviceId;

    @ApiModelProperty("机器人唯一id")
    @Field(type = FieldType.Long)
    private Long deviceUniqueId;

    @ApiModelProperty("机器人类型id")
    @Field(type = FieldType.Integer)
    private Integer deviceType;

    @ApiModelProperty("微信id(群wxid)")
    @Field(type = FieldType.Keyword)
    private String wxid;

    @ApiModelProperty("微信号(群号)")
    @Field(type = FieldType.Keyword)
    private String wxno;

    @ApiModelProperty("微信昵称/群昵称")
    @Field(type = FieldType.Text)
    private String nick;

    @ApiModelProperty("备注")
    @Field(type = FieldType.Text)
    private String remark;

    @ApiModelProperty("头像")
    @Field(type = FieldType.Keyword)
    private String himg;

    @ApiModelProperty("性别")
    @Field(type = FieldType.Integer)
    private Integer gender;

    @ApiModelProperty("国家")
    @Field(type = FieldType.Keyword)
    private String country;

    @ApiModelProperty("省份")
    @Field(type = FieldType.Keyword)
    private String province;

    @ApiModelProperty("城市")
    @Field(type = FieldType.Keyword)
    private String city;

    @ApiModelProperty("电话")
    @Field(type = FieldType.Text)
    private String phone;

    @ApiModelProperty("保留字段")
    @Field(type = FieldType.Text)
    private String labelIds;

    @ApiModelProperty("用户类型（0-个人微信；1-群聊）")
    @Field(type = FieldType.Integer)
    private Integer userType;

    @ApiModelProperty("群成员数量")
    @Field(type = FieldType.Integer)
    private Integer gmCount;

    @ApiModelProperty("版本")
    @Field(type = FieldType.Long)
    private Long version = 0L;

    @ApiModelProperty("创建时间")
    @Field(type = FieldType.Integer)
    private int createTime;

    @ApiModelProperty("修改时间")
    @Field(type = FieldType.Integer)
    private int updateTime;

    @ApiModelProperty("最后群发消息时间")
    @Field(type = FieldType.Integer)
    private int lastGroupSendTime;

    @ApiModelProperty("群配置方案id")
    @Field(type = FieldType.Long)
    private Long managePlanId;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public Long getMerId() {
        return merId;
    }

    public void setMerId(Long merId) {
        this.merId = merId;
    }

    public String getDeviceId() {
        return deviceId;
    }

    public void setDeviceId(String deviceId) {
        this.deviceId = deviceId;
    }

    public Long getDeviceUniqueId() {
        return deviceUniqueId;
    }

    public void setDeviceUniqueId(Long deviceUniqueId) {
        this.deviceUniqueId = deviceUniqueId;
    }

    public Integer getDeviceType() {
        return deviceType;
    }

    public void setDeviceType(Integer deviceType) {
        this.deviceType = deviceType;
    }

    public String getWxid() {
        return wxid;
    }

    public void setWxid(String wxid) {
        this.wxid = wxid;
    }

    public String getWxno() {
        return wxno;
    }

    public void setWxno(String wxno) {
        this.wxno = wxno;
    }

    public String getNick() {
        return nick;
    }

    public void setNick(String nick) {
        this.nick = nick;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getHimg() {
        return himg;
    }

    public void setHimg(String himg) {
        this.himg = himg;
    }

    public Integer getGender() {
        return gender;
    }

    public void setGender(Integer gender) {
        this.gender = gender;
    }

    public String getCountry() {
        return country;
    }

    public void setCountry(String country) {
        this.country = country;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getLabelIds() {
        return labelIds;
    }

    public void setLabelIds(String labelIds) {
        this.labelIds = labelIds;
    }

    public Integer getUserType() {
        return userType;
    }

    public void setUserType(Integer userType) {
        this.userType = userType;
    }

    public Integer getGmCount() {
        return gmCount;
    }

    public void setGmCount(Integer gmCount) {
        this.gmCount = gmCount;
    }

    public Long getVersion() {
        return version;
    }

    public void setVersion(Long version) {
        this.version = version;
    }

    public int getCreateTime() {
        return createTime;
    }

    public void setCreateTime(int createTime) {
        this.createTime = createTime;
    }

    public int getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(int updateTime) {
        this.updateTime = updateTime;
    }

    public int getLastGroupSendTime() {
        return lastGroupSendTime;
    }

    public void setLastGroupSendTime(int lastGroupSendTime) {
        this.lastGroupSendTime = lastGroupSendTime;
    }

    public Long getManagePlanId() {
        return managePlanId;
    }

    public void setManagePlanId(Long managePlanId) {
        this.managePlanId = managePlanId;
    }
}
